#pragma once

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

class Message{
private:
	int user, id;
	float value1, value2;
	string message;
public:
	enum USER { SYSTEM, ENEMY, HUMAN };

	Message(void){
		value1 = 0;
		value2 = 0;
		message = "NIL";
		id = -1;
		user = SYSTEM;
	};

	~Message(void){
	};

	void Post(string message, USER user, int id){
		this->user = user;
		value1 = 0;
		value2 = 0;
		this->message = message;
		this->id = id;
	};

	void Post(string message, float value, USER user, int id){
		this->user = user;
		this->value1 = value;
		value2 = 0;
		this->message = message;
		this->id = id;
	};

	void Post(string message, float value1, float value2, USER user, int id){
		this->user = user;
		this->value1 = value1;
		this->value2 = value2;
		this->message = message;
		this->id = id;
	};

	int GetID(void){
		return id;
	}

	int GetUser(void){
		return user;
	}

	string Read(void){
		return message;
	}

	string ReadAll(void){
		stringstream appendString;
		appendString << message << " - " << id;
		return appendString.str();
	}

	float GetValue1(void){
		return value1;
	}

	float GetValue2(void){
		return value2;
	}
};